1
掌握高级控制流
AI019Lesson 6
00:00

这个 case 表达式是 Elixir 控制流的核心。与命令式 switch 语句不同, case 它是一个函数式表达式,会返回匹配分支的结果,使开发者能够立即解构如 map 和 tuple 等复杂数据类型,同时强制执行穷尽性逻辑。

1. 模式匹配与绑定

这个 case 表达式允许你将一个值与一组模式进行比对。它会执行与第一个匹配的 首个匹配的模式 相关的代码,并返回该代码的值。你可以在匹配过程中绑定变量,以便在分支逻辑中立即使用。

case dave do
%{state: some_state} = person ->
IO.puts "#{person.name} 居住在 #{some_state}"
end

2. 可视化逻辑流程

模式 {:ok, val}模式 {:error, _}默认 _

3. 守卫子句与穷尽性

通过使用 when 关键字,你可以用谓词逻辑增强结构匹配(例如, is_number(age) 且 age >= 21)。Elixir 要求对每一个可能的输入都有匹配;如果没有模式匹配成功,则会抛出 CaseClauseError 异常。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>